Technote 1184

FCBs, Now and Forever


ñ⁄éü

ÇÕÇ∂ÇflÇ…

FCB ÇÃëOéj

FCB ÇÃÇÕÇ∂Ç‹ÇË

System 7.0 éûë„

System 7.5 éûë„

Mac OS 8.1 éûë„

Mac OS 9.0 éûë„

óvñÒ

Mac OS 9.0 ÇÕ FCB (File Control Block) ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇëÂïùÇ…ïœçXǵNjÇ∑ÅBDZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAÇ‹Ç∏ FCB ÇÃÉIÉäÉWÉiÉãÉtÉHÅ[É}ÉbÉgDžǬǢǃê‡ñæÇµÅAÇ≥ÇÁÇ…ÅAí∑îNÇ…ÇÌÇΩǡǃ FCB ÉeÅ[ÉuÉãÇÃégÇ¢ï˚ǙǫÇÃÇÊǧDžïœëJǵǃǴÇΩÇ©ÅAÇ‹ÇΩå›ä∑ê´ÇÃdžÇÈï˚ñ@Ç≈ FCB èÓïÒÇ…ÉAÉNÉZÉXÇ∑ÇÈÇ…ÇÕǫǧÇ∑ÇÍnjǢǢǩÅAÇΔǢǡÇΩñ‚ëËDžǬǢǃê‡ñæÇµÇ‹Ç∑ÅB

Ç∑Ç◊ǃÇà Mac OS ÉfÉxÉçÉbÉpÇÕÅA Åuåªé¿Ç…ë¶ÇµÇΩíÒàƒÅv ÇÃÉZÉNÉVÉáÉìÇì«ÇÒÇ≈ÅAäJî≠íÜÇÃÉ\ÉtÉgÉEÉFÉAÇ™ Mac OS 9.0 Ç®ÇÊǗǪÇÍà»ç~ÇΔå›ä∑ê´Ç™Ç†ÇÈDZÇΔÇämîFǵǃÇ≠ÇæÇ≥Ç¢ÅB

É\ÉtÉgÉEÉFÉAÇ… Mac OS 9.0 ÇΔÇÃå›ä∑ê´Ç™Ç»Ç¢ (ì¡Ç…ÅAÉVÉXÉeÉÄÉGÉâÅ[ 119 ÇÃå¥àˆÇ…Ç»ÇËÇ‹Ç∑) èÍçáÇÕÅA ÅuFCB ÇÃñ‚ëËÇÃÉfÉoÉbÉOÅv ÇÃÉZÉNÉVÉáÉìÇì«ÇÒÇ≈Ç≠ÇæÇ≥Ç¢ÅB.

DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃǪÇÃëºÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAMac OS çlå√äwÇÃà§çDé“Ç…ÇΔǡǃãªñ°ê[Ç¢Ç≈džÇÎǧîwåiéëóøÇñæÇÁǩDžǵNjÇ∑ÅB


ÇÕÇ∂ÇflÇ…

Mac OS 9.0 à»ëOÅAMacintosh Ç≈ìØéûÇ…ÉIÅ[ÉvÉìÇ≈Ç´ÇÈÉtÉ@ÉCÉãÇÃêî (FCB) ÇÕ 348 Ç…êßå¿Ç≥ÇÍǃǢNjǵÇΩÅBDZÇÃêßå¿Ç™ÉÜÅ[ÉUÇΔÉfÉxÉçÉbÉpÇÃëoï˚Ç…ÇΔǡǃñ‚ëËÇ≈džÇÈDZÇΔÇÕñæÇÁÇ©ÇæÇ¡ÇΩÇΩÇflÅAMac OS 9.0 ÇÃê›åvñ⁄ïWÇà 1 ǬÇÕDZÇÃêßå¿ílÇëÂïùÇ…ëùâ¡Ç≥ÇπÇÈDZÇΔÇ≈ǵÇΩÅBǵǩǵÅAdžÇÁljÇÈLJÇÃDžǪÇÃë„èûÇ™î∫ǢNjÇ∑ÅBFCB ÇÃêîÇëùâ¡Ç≥ÇπÇÈDZÇΔÇÃë„èûÇÕÅuå›ä∑ê´ÅvÇΔǢǧñ‚ëËÇ≈ǵÇΩÅBMac OS ÇÕ HFS ÇÃì±ì¸ (1986 îN) à»óàÅAìØàÍÇà FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇégópǵǃǴNjǵÇΩÅBÇ‹ÇΩÅAëΩÇ≠ÇÃÉfÉxÉçÉbÉpǙDZÇÃÉtÉHÅ[É}ÉbÉgÇóäÇËÇ…ê¨í∑ǵǃǴNjǵÇΩ (ǪÇÍǙǢǢDZÇΔǩǫǧǩÇÕï ÇÃñ‚ëËÇΔǵǃ)ÅB

íçà”:
ÅuFork Control BlockÅvÇΔǢǧópåÍÇÕÅAì`ìùìIÇ…égópÇ≥ÇÍǃǴÇΩÅuFile Control BlockÅvÇΔǢǧópåÍÇÊÇËLJãZèpìIÇ…ÇÕê≥ämÇ≈džÇÈÇΔǢǶNjÇ∑ÅBç¨óêÇîÇØÇÈÇΩÇflÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕå¥ë•ÇΔǵǃǬÇÀÇ…ÅuFCBÅvÇΔǢǧó™åÍÇégópǵNjÇ∑ÅB

DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAí∑îNÇ…ÇÌÇΩǡǃ FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…â¡Ç¶ÇÁÇÍǃǴÇΩïœçXÇΔÅADZÇÍÇÁÇÃïœçXÇ™ÉfÉxÉçÉbÉpDžLJÇΩÇÁǵÇΩâeãøÇ…ǬǢǃê‡ñæÇµÇ‹Ç∑ÅBFCB ÇÃëSéjÇÕǩǻÇËï°éGÇ≈džÇÈÇΩÇflÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAÇ«ÇøÇÁÇ©ÇΔǢǶnjå√Ç¢É^ÉCÉvÇÃÉRÅ[ÉhÇǩǩǶǃǢÇÈÉfÉxÉçÉbÉpå¸ÇØÇ…Ç¢Ç≠ǬǩÇÃåªé¿Ç…ë¶ÇµÇΩíÒàƒÇ©ÇÁòbÇénÇflÇÈDZÇΔDžǵNjÇ∑ÅB

åªé¿Ç…ë¶ÇµÇΩíÒàƒ

Mac OS 9.0 ÇÕ FCB ÉeÅ[ÉuÉãÇ…ÇΔǡǃãÜã…ÇÃêiâªÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBApple Ç≈ÇÕÅAÉVÉXÉeÉÄÇÃêiâªÇ…çáÇÌÇπǃç°å„LJ FCB ÉeÅ[ÉuÉãÇ…ïœçXÇâ¡Ç¶ÇƒÇ¢Ç≠ó\íËÇ≈Ç∑ÅBDZÇÃÇΩÇflÅAç°Ç∑ÇÆé©ï™ÇÃèëÇ¢ÇΩÉRÅ[ÉhÇämîFǵǃÅAè´óàÇ…ÇÌÇΩÇÈå›ä∑ê´Çà€éùÇ≈Ç´ÇÈÇÊǧDžìwóÕÇ∑ÇÈDZÇΔÇ™äÃóvÇ≈Ç∑ÅB

ì¡Ç…É`ÉFÉbÉNÇ∑Ç◊Ç´çÄñ⁄ÇÕÉtÉ@ÉCÉãéQèΔî‘çÜÇÃégÇ¢ï˚Ç≈Ç∑ÅBÉtÉ@ÉCÉãéQèΔî‘çÜÇÕÅAê≥Çà SInt16 å^ÇÃílÇΔíËã`Ç≥ÇÍǃǢNjÇ∑ÅBì¡ï Ç»ÉtÉ@ÉCÉãéQèΔî‘çÜÇΔǢǧLJÇÃÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB2 ÇΔǢǧî‘çÜÇ™ÉVÉXÉeÉÄÉtÉ@ÉCÉãÇÃÉtÉ@ÉCÉãéQèΔî‘çÜÇ≈džÇÈÇΔǢǧDZÇΔÇÕï€èÿÇ≥ÇÍǃǢNjÇπÇÒÅBÇ‹ÇΩÅA(refNum mod 4) = 2 (Mac OS 9 à»ëOÇÕ (refNum mod 94) = 2) ÇΔǢǧìôéÆÇ‡ï€èÿÇ≥ÇÍǃǢNjÇπÇÒÅB

íçà”:
0 ÇΔǢǧî‘çÜÇÕÅAnil ÉtÉ@ÉCÉãéQèΔî‘çÜÇΔ nil ÉfÉoÉCÉXéQèΔî‘çÜÇÃóºï˚ÇΔǵǃç≈ìKÇ≈Ç∑ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÉåÉxÉãÇÃÉ\ÉtÉgÉEÉFÉA (ÉAÉvÉäÉPÅ[ÉVÉáÉìÅAã§óLÉâÉCÉuÉâÉäǻǫ) Ç…ÇΔǡǃÅAè´óàìIÇ»å›ä∑ê´Ç…å¸ÇØÇΩç≈ëPÇÃìπãÿÇÕ CarbonÇ≈Ç∑ÅBCarbon ÉvÉçÉOÉâÉ~ÉìÉOÉCÉìÉ^ÉtÉFÅ[ÉXÇÕÅAì¡Ç…è´óàìIÇ»ÉVÉXÉeÉÄÇ≈ÉTÉ|Å[ÉgÇ≥ÇÍÇÈDZÇΔÇëOíÒÇ…ê›åvÇ≥ÇÍǃǢNjÇ∑ÅBCarbon Ç…ëŒâûǵÇΩÉvÉçÉOÉâÉ~ÉìÉOÇçsǡǃǢÇÍÇŒÅAè´óàìIÇ…ÉçÅ[ÉåÉxÉãÇà File Manager ÇÃïœçXÇ©ÇÁâeãøÇéÛÇØÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÅB

ì¡Ç…ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÉåÉxÉãÇÃÉRÅ[ÉhÇ©ÇÁ FCB èÓïÒÇ…ÉAÉNÉZÉXÇ∑ÇÈïKóvǙdžÇÈèÍçáÇÕÅAFile Manager ÉãÅ[É`ÉìÇà FSGetForkCBInfo (Ç‹ÇΩÇÕÅAǪÇÃÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÉoÉäÉAÉìÉgÇà PBGetForkCBInfoSync ÇΔ PBGetForkCBInfoAsyncÅAdžÇÈÇ¢ÇÕ Mac OS 9.0 à»ëOÇÃÉVÉXÉeÉÄÇ≈ÇÕ PBGetFCBInfoSync ÇΔ PBGetFCBInfoAsync)ÇégópǵǃÇ≠ÇæÇ≥Ç¢

ÇΩÇæÇµÅAFile Manager ÇåƒÇ—èoǵǃ FCB èÓïÒÇéÊìæÇ≈ǴǻǢèÛãµÇ‡Ç†ÇËÇ‹Ç∑ÅBÇΩÇΔǶnjÅAFile System Manager (FSM) ÉvÉâÉOÉCÉìÇèëǢǃǢÇÈèÍçáÇ‚ÅAÉVÉXÉeÉÄã@î\ägí£ÇèëǢǃǢǃÅAǪÇÃÉRÅ[ÉhÇ™ File Manager ÉpÉbÉ`ÇÃÉRÉìÉeÉLÉXÉgì‡Ç≈é¿çsÇ≥ÇÍÇÈèÍçáǻǫÇ≈Ç∑ÅBDZÇÍÇÁÇÃèÛãµÇ≈ÇÕÅAFCB Ç…íºê⁄ìIÇ…ÉAÉNÉZÉXÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ (ǬNjÇËÅAFile Manager ÉäÉNÉGÉXÉgÇÉLÉÖÅ[Ç…äiî[ǵǻǢÇΔǢǧDZÇΔÇ≈Ç∑)ÅB

FCB Ç…íºê⁄ìIÇ…ÉAÉNÉZÉXÇ∑ÇÈïKóvǙdžǡǃÅAFSM Ç™égópâ¬î\Ç»èÍçáÇÕÅA FSM ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇégópǵǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÍÇÁÇÃÉãÅ[É`ÉìDžǬǢǃÇÕÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃå„îºÇ≈ê‡ñæÇµÇ‹Ç∑ÅB

FCB ÉeÅ[ÉuÉãÇ÷ÇÃíºê⁄ìIÇ»ÉAÉNÉZÉXÇ™óeîFÇ≥ÇÍÇÈóBàÍÇÃÉPÅ[ÉXÇÕÅAFCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇ™ïKóvÇ≈ÅAǵǩLJ FSM Ç™ë∂ç›ÇµÇ»Ç¢ÇΔÇ´Ç≈Ç∑ÅB

FCB ÇÃñ‚ëËÇÃÉfÉoÉbÉO

äJî≠ǵÇΩÉ\ÉtÉgÉEÉFÉAÇ™ Mac OS 9.0 è„Ç≈ê≥èÌÇ…ìÆçÏǵǻÇ≠ǃÅAFCB ÉeÅ[ÉuÉãÇ÷ÇÃàÀë∂ǙǪÇÃå¥àˆÇ≈džÇÈÇΔçlǶÇÁÇÍÇÈèÍçáÇÕÅAñ‚ëËÇÃÉfÉoÉbÉOÇ…égópÇ≈Ç´ÇÈëΩÇ≠ÇÃï˚ñ@Ç™ë∂ç›ÇµÇ‹Ç∑ÅBDZÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAÉ\Å[ÉXÉRÅ[ÉhÇåüçıǵǃ FCB ä÷òAÇÃÉoÉOÇî≠å©Ç∑ÇÈï˚ñ@ÇΔÅADZÇÃñ‚ëËÇÃÉfÉoÉbÉOÇ…égópÇ≈Ç´ÇÈÇ¢Ç≠ǬǩÇÃÉâÉìÉ^ÉCÉÄÉfÉoÉbÉOéËñ@DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅB

É\Å[ÉXÉRÅ[ÉhÇÃåüçı

É\ÉtÉgÉEÉFÉAÇ™ FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇ…àÀë∂ǵǃǢÇÈǩǫǧǩÇàÍñ⁄Ç≈îªífÇ∑ÇÈï˚ñ@ÇÕÅAǪÇÍÇ Mac OS 9.0 Ç≈é¿çsǵǃǛÇÈDZÇΔÇ≈Ç∑ÅBǵǩǵÅADZÇÃÉgÉäÉbÉLÅ[Ç»ï˚ñ@ÇÕÉ\Å[ÉXëSëÃÇ…ÇÌÇΩǡǃé¿çsÇµÇ»ÇØÇÍÇŒà”ñ°Ç™Ç†ÇËÇ‹ÇπÇÒÅBFCB ÉeÅ[ÉuÉãÇ÷ÇÃàÀë∂ÇÕÅAÉeÉXÉgÇ≈ÇÕé¿çsÇ≥ÇÍǻǢÇÊǧǻÅAÇ‹ÇÍDžǵǩégópÇ≥ÇÍǻǢã@î\ÇÃíÜÇ…âBÇÍǃǢÇÈDZÇΔLJdžÇËÇ‹Ç∑ÅBÉeÉXÉgÇ…ë„ÇÌÇÈç≈ëPÇÃë„ë÷àƒÇÕÅAÉ\Å[ÉXÉRÅ[ÉhÇåüçıǵǃ FCB Ç÷ÇÃéQèΔÇå©Ç¬ÇØèoÇ∑DZÇΔÇ≈Ç∑ÅB

PowerPC É\ÉtÉgÉEÉFÉAÇÃèÍçáÇÕÅACarbon Dater ÉcÅ[Éã (Carbon Web ÉTÉCÉg Ç©ÇÁÉ_ÉEÉìÉçÅ[ÉhÇ≈Ç´Ç‹Ç∑). ÇâÓǵǃÉvÉçÉOÉâÉÄÇé¿çsÇ∑ÇÈDZÇΔÇ©ÇÁénÇflǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÍÇ…ÇÊÇËÅAFCB ÉeÅ[ÉuÉãÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉbÉTÉãÅ[É`Éì (LMGetFCBSPtrÅALMSetFCBSPtrÅALMGetFSFCBLenÅAÇ®ÇÊÇ— LMSetFSFCBLen) ÇΔÅAÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉXÇéwé¶Ç∑ÇÈ PowerPC ÉRÅ[ÉhÇÃÉVÅ[ÉPÉìÉXÇ÷ÇÃéQèΔÇ…ÉtÉâÉOÇóßǃÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBǵǩǵécîOǻDZÇΔÇ…ÅACarbon Dater ÇÕÇ∑Ç◊ǃÇÃÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉXÇåüèoÇ≈ǴǻǢÇΩÇflÅAÉ\Å[ÉXÉRÅ[ÉhÇÉeÉLÉXÉgÉxÅ[ÉXÇ≈LJåüçıÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

Carbon Dater ÇÕ 68K É\ÉtÉgÉEÉFÉAÇ…ÇÕégópÇ≈ǴǻǢÇΩÇflÅAÉ\Å[ÉXÉRÅ[ÉhÇ≈ FCB ÉeÅ[ÉuÉãÇ÷ÇÃíºê⁄ÉAÉNÉZÉXÇéwé¶Ç∑ÇÈÇ¢Ç≠ǬǩÇà (džNjÇËàÍî ìIÇ≈ÇÕǻǢ) ï∂éöóÒÇåüçıÇ∑ÇÈÇÃÇ™ç≈ëPÇÃï˚ñ@ÇΔǢǶNjÇ∑ÅBÇΩÇΔǶnjÅAéüÇÃÇÊǧǻï∂éöóÒÇåüçıǵNjÇ∑ÅB

  • ÅuFCBSPtrÅvÇΔÅuFSFCBLenÅv - éÂóvÇ»ÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉãÇÃê≥éÆñºÅB
  • Åu34EÅvÇΔÅu3F6Åv - 16 êiÇ≈ï\ãLǵÇΩè„èqÇÃLJÇÃÅB
  • Åu846ÅvÇΔÅu1014Åv - 10 êiÇ≈ï\ãLǵÇΩè„èqÇÃLJÇÃÅB

Ç∑Ç◊ǃÇÃÉ\ÉtÉgÉEÉFÉAÇÃÉ\Å[ÉXǙǻǢèÍçáÇÕÅA68K ÉRÅ[ÉhÉäÉ\Å[ÉXÇ≈ $034E ÇΔ $03F6 ÇåüçıǵǃLJǩNjǢNjÇπÇÒÅBDZÇÍÇÁóºï˚ÇÃílÇÕ 68K ñΩóflÇΔǵǃÇÕÇ‹ÇÍǻLJÇÃÇ≈ÅADZÇÍÇÁÇÃílÇ™åüèoÇ≥ÇÍÇΩèÍçáÇÕÅAǪÇÃé¸àÕÇÃÉRÅ[ÉhÇãtÉAÉZÉìÉuÉãǵǃÅAǪÇÍÇ™ FCB ÉeÅ[ÉuÉãÇ÷ÇÃÉAÉNÉZÉXÇ≈džÇÈǩǫǧǩÇämîFÇ∑ÇÈâøílǙdžÇËÇ‹Ç∑ÅB

ÉVÉXÉeÉÄÉGÉâÅ[ 119

É\ÉtÉgÉEÉFÉAÇé¿çsǵÇΩÇΔÇ´Ç…ÅAÉVÉXÉeÉÄÉGÉâÅ[ dsMustUseFCBAccessors 119 Ç…ÇÊÇÈÉNÉâÉbÉVÉÖÇ™î≠ê∂Ç∑ÇÈèÍçáÅADZÇÃDZÇΔÇÕÅAPowerPC ÉRÅ[ÉhÇ™ FCB ÉeÅ[ÉuÉãÇ…íºê⁄ìIÇ…ÉAÉNÉZÉXǵǃǢÇÈDZÇΔÇÃñæÇÁǩǻèÿãíÇΔǢǶNjÇ∑ÅBè⁄ç◊DžǬǢǃÇÕÅAå„èqÇÃÅuPowerPC ÉRÅ[ÉhÇΔÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉbÉTÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

îfléSÇ»ÉNÉâÉbÉVÉÖ

Mac OS 9.0 è„Ç≈é¿çsǵÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ó·äOÉAÉNÉZÉX (Ç‹ÇΩÇÕÉoÉXÉGÉâÅ[) Ç≈ÉNÉâÉbÉVÉÖÇ∑ÇÈèÍçáÇÕÅAÉvÉçÉOÉâÉÄÇÃÉXÉeÅ[É^ÉXÇí≤Ç◊ǃÅAñ‚ëËÇ™ FCB Ç…ä÷òAǵǃǢÇÈǩǫǧǩÇîªífÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉvÉçÉZÉbÉTÇÃÉåÉWÉXÉ^Ç‹ÇΩÇÕÉçÅ[ÉJÉãïœêîÇÃíÜÇ…à»â∫ÇÃÇ¢Ç∏ÇÍǩǙë∂ç›Ç∑ÇÈèÍçáÇÕÅAFCB ä÷òAÇÃÉgÉâÉuÉãÇ™î≠ê∂ǵǃǢNjÇ∑ÅB

  • ÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉã FCBSPtr ($034e) Ç…ÇÊǡǃéQèΔÇ≥ÇÍÇÈ 32KB É|ÉCÉìÉ^ÉuÉçÉbÉNÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
  • $68F168F1 ÇΔǢǧílÅBDZÇÃílÇÕÅAÇ¢Ç∏ÇÍÇ©ÇÃï˚å¸Ç… 16 ÉrÉbÉgÇæÇØÉVÉtÉgǵǃǢÇÈâ¬î\ê´Ç‡Ç†ÇËÇ‹Ç∑ÅBDZÇÍÇÕÉoÉXÉGÉâÅ[ÇÃílÇ≈ÅAFile Manager ÇÕDZÇÃílÇégǡǃÅAÉtÉFÉCÉN FCB ÉeÅ[ÉuÉãÇ…ñ¢égópÇÃÉGÉìÉgÉäÇèëÇ´çûǛNjÇ∑ÅBè⁄ç◊DžǬǢǃÇÕÅAÅu68K ÉRÅ[ÉhÇΔÉçÅ[ÉÅÉÇÉäÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB.
  • VCB ÇÃÉAÉhÉåÉXÇ≈džÇÈíl (MacsBug Çà vol ÉRÉ}ÉìÉhÇégópÇ∑ÇÈÇΔÅAVCB ÉäÉXÉgÇï\é¶Ç≈Ç´Ç‹Ç∑)ÅBDZÇÃílÇÕÅAÇ¢Ç∏ÇÍÇ©ÇÃï˚å¸Ç… 16 ÉrÉbÉgÇæÇØÉVÉtÉgǵǃǢÇÈâ¬î\ê´Ç‡Ç†ÇËÇ‹Ç∑ÅBè⁄ç◊DžǬǢǃÇÕÅAÅu68K ÉRÅ[ÉhÇΔÉçÅ[ÉÅÉÇÉäÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

FCB ÇÃëOéj

åªç›ÇÌÇÍÇÌÇÍÇ™ímǡǃǢÇÈ FCB ÇÕ HFS ÇÃàÍïîÇΔǵǃì±ì¸Ç≥ÇÍNjǵÇΩÅBHFS ÇÕÅA128K ROM Ç‹ÇΩÇÕǪÇÍà»ç~ÇÃÇ∑Ç◊ǃÇÃÉRÉìÉsÉÖÅ[É^ (1986 îNî≠îÑÇà Macintosh Plus à»ç~ÇÃÇ∑Ç◊ǃÇÃÉRÉìÉsÉÖÅ[É^) Ç…ëgÇ›çûÇ‹ÇÍǃǢNjÇ∑ÅBÇ‹ÇΩÅA64K ROM ÉRÉìÉsÉÖÅ[É^ (Macintosh 128 Ç®ÇÊÇ— 512) Ç≈ÇÕã@î\ägí£ÇΔǵǃégópÇ≥ÇÍǃǢNjǵÇΩÅB

Ç¢Ç≠ǬǩÇÃó·äOìIÇ»ÉPÅ[ÉXÇèúÇ´ÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅA128K ROM ÉVÉXÉeÉÄÇ‹ÇΩÇÕǪÇÍà»ç~Ç…ëŒâûǵÇΩÉvÉçÉOÉâÉ~ÉìÉOÇçsǧDZÇΔÇ™ëOíÒDžǻǡǃǢNjÇ∑ÅB64K ROM É}ÉVÉìÇ≈ÇÕ System 7.0 Ç™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢǻǢÇΩÇflÅADZÇÃëOíÒÇÕê≥ìñǻLJÇÃÇΔǢǶNjÇ∑ÅBÇ≥ÇÁÇ…ÅAåªç›ÇÃäJî≠ä¬ã´Ç≈ÇÕÅA64K ROM Ç…ëŒâûǵÇΩäJî≠ÇÕÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇπÇÒÅBóvÇ∑ÇÈÇ…ÅA64K ROM Ç…ëŒâûǵÇΩäJî≠ÇçsǡǃǢÇÈèÍçáÅAÇÌÇÍÇÌÇÍÇÃã§ä¥ÇÕìæÇÁÇÍǃLJÅAÉTÉ|Å[ÉgÇÕìæÇÁÇÍǻǢÇΔǢǧDZÇΔÇ≈Ç∑ÅB


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

FCB ÇÃÇÕÇ∂Ç‹ÇË

DZÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgDžǬǢǃê‡ñæÇµÇ‹Ç∑ÅBDZÇÃÉtÉHÅ[É}ÉbÉgÇÕÅAHFS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇΔÇΔLJDžì±ì¸Ç≥ÇÍÅAMac OS 9.0 ÇÃÉäÉäÅ[ÉXÇΔÇΔLJDžåªñÇëfiǴNjǵÇΩÅBÇ‹ÇΩÅADZÇÃÉtÉHÅ[É}ÉbÉgÇ…ëŒÇ∑ÇÈÇ¢Ç≠ǬǩÇÃêßå¿Ç…ǬǢǃLJò_Ç∂Ç‹Ç∑ÅB

ÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉã

ÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇ™ì±ì¸Ç≥ÇÍÇΩÇΔÇ´ÅAHFS ÇÕíPèÉÇ»ÉeÅ[ÉuÉãÇégǡǃ FCB Çäiî[ǵǃǢNjǵÇΩÅBDZÇÃÉeÅ[ÉuÉãÇÕÅAÉVÉXÉeÉÄÉqÅ[Évì‡ÇÃÉ|ÉCÉìÉ^ÉuÉçÉbÉNÇΔǵǃï€éùÇ≥ÇÍÅAÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉã FCBSPtr ($34E) Ç…ÇÊǡǃÉ|ÉCÉìÉgÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉeÅ[ÉuÉãÇÕÅA2 ÉoÉCÉgÇÃÉwÉbÉ_ (DZÇÃíÜÇ…ÇÕÉ|ÉCÉìÉ^ÉuÉçÉbÉNÇÃÉTÉCÉYÇ™ä‹Ç‹ÇÍÇ‹Ç∑) ÇΔÅAǪÇÍÇ…ë±Ç≠ FCB ÇÃîzóÒÇ©ÇÁç\ê¨Ç≥ÇÍÅADZÇÍÇÁÇÃÉwÉbÉ_ÇΔîzóÒÇÕǪÇÍǺÇÍå≈íËí∑ÇÃÉTÉCÉYÇéùÇøÇ‹Ç∑ÅBDZÇÃÉTÉCÉYÇÕÅAï ÇÃÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉãÇ≈džÇÈ FSFCBLen ($3F6) Ç…ÇÊǡǃåàíËÇ≥ÇÍÅAHFS Ç™ì±ì¸Ç≥ÇÍÇΩÇΔÇ´ÅADZÇÃÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉãÇ…ÇÕ 94 ÇΔǢǧílÇ™ä‹Ç‹ÇÍǃǢNjǵÇΩÅB

éüÇ…ÅAÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇé¶ÇµÇ‹Ç∑ÅB

gif#1

ÉtÉ@ÉCÉãéQèΔî‘çÜÇÕÅADZÇÃÉeÅ[ÉuÉãÇÃëŒâûÇ∑ÇÈ FCB Ç÷ÇÃÉIÉtÉZÉbÉgÇ≈Ç∑ÅBëÊ N î‘ñ⁄ÇÃÉtÉ@ÉCÉãÇ…ëŒÇ∑ÇÈÉtÉ@ÉCÉãéQèΔî‘çÜÇÕ 2 + (N - 1) * FSFCBLen Ç≈ÅADZÇÃílÇÕ 2ÅA96ÅA190ÅA284ÅA... ǻǫÇΔÇ»ÇËÇ‹Ç∑ÅB

FCB ÉeÅ[ÉuÉãÇÃê›åvè„ÇÃêßå¿

DZÇÃÇÊǧǻ FCB ÉeÅ[ÉuÉãÇÃäÓñ{ç\ë¢ÇÕÅAFCB ÇÃêîÅAǬNjÇËÇÕìØéûÇ…ÉIÅ[ÉvÉìÇ≈Ç´ÇÈÉtÉ@ÉCÉãÇÃêîÇ…ëŒÇ∑ÇÈêßå¿Çà√é¶ÇµÇƒÇ¢Ç‹Ç∑ÅBÉIÉäÉWÉiÉã Macintosh (ÉÅÉÇÉäÇ…ã…í[Ç»êßñÒǙdžÇËNjǵÇΩ) Ç≈ÇÕÅA10 å¬Çà FCB Çä‹ÇfiÉeÅ[ÉuÉãÇçÏê¨ÇµÇƒÇ¢Ç‹ÇµÇΩÅBDZÇÃêîÇÕÅAÉuÅ[ÉgÉuÉçÉbÉN (BootBlkHdr) Çà bbCntFCBs ÉtÉBÅ[ÉãÉhÇ©ÇÁì±Ç´èoÇ≥ÇÍÇΩílÇ≈ǵÇΩÅBMacintosh Plus Ç™ìoèÍǵÇΩÇΔÇ´ÅAÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈÉÅÉÇÉäÇ…çáÇÌÇπǃÅAÉVÉXÉeÉÄÇÕDZÇÃêîÇé©ìÆìIÇ…ägëÂǵNjǵÇΩÅBÉRÉìÉsÉÖÅ[É^Ç… 1MB Ç‹ÇΩÇÕǪÇÍà»è„ÇÃÉÅÉÇÉäÇ™ìãç⁄Ç≥ÇÍǃǢÇÈÇΔÅAÉVÉXÉeÉÄÇÕ bbCntFCBs * 4 ÇÃÉGÉìÉgÉäÇä‹Çfi FCB ÉeÅ[ÉuÉãÇçÏê¨ÇµÇ‹Ç∑ÅBǪÇÃåãâ ÅAëÂïîï™Çà System 6 ÉRÉìÉsÉÖÅ[É^Ç≈ÇÕÅA40 ÇÃÉGÉìÉgÉäÇä‹Çfi FCB ÉeÅ[ÉuÉãÇ™çÏê¨Ç≥ÇÍǃǢNjǵÇΩÅB

System 6 éûë„LJèIÇÌÇËÇ…ãflÇ√Ç¢ÇΩDZÇÎÅADZÇÃêßå¿Ç™ëΩÇ≠ÇÃÉÜÅ[ÉUÇ…ÇΔǡǃñ‚ëËÇ≈džÇÈDZÇΔÇ™ñæÇÁǩDžǻÇËNjǵÇΩÅBDZÇÃñ‚ëËÇâåàÇ∑ÇÈÇΩÇflÇ…ÇÕ 2 ǬÇÃï˚ñ@Ç™ë∂ç›ÇµÇ‹ÇµÇΩÅBÇ‹Ç∏ 1 ǬÇÕÅAÉfÉBÉXÉNÉGÉfÉBÉ^ (ì`ê‡ìIÇ» FEdit ǻǫ) ÇégǡǃÉuÅ[ÉgÉuÉçÉbÉNÇï“èWǵÅAêßå¿ílÇëùâ¡Ç≥ÇπÇÈÇΔǢǧï˚ñ@Ç≈ǵÇΩÅBÇ‹ÇΩLJǧ 1 ǬÇÕÅAÉVÉXÉeÉÄãNìÆéûÇ… FCB ÉeÅ[ÉuÉãÇǪÇÃç≈ëÂÉTÉCÉYÇ‹Ç≈ägëÂÇ∑ÇÈÅuUp Your FCBsÅvÉVÉXÉeÉÄã@î\ägí£ÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈÇΔǢǧï˚ñ@Ç≈ǵÇΩÅB

ÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇÃç≈ëÂÉTÉCÉYÇÕ 32KB Ç≈ÅADZÇÍÇÕéÂÇΔǵǃÅAÉtÉ@ÉCÉãéQèΔî‘çÜÇ™ 16 ÉrÉbÉgÇÃïÑçÜïtÇ´ÉIÉtÉZÉbÉgÇ≈džÇÈDZÇΔÇ…ãNàˆÇµÇƒÇ¢Ç‹Ç∑ÅBǪÇÃåãâ ÅA(32768 - 2) div FSFCBLen Ç≈åvéZÇ≥ÇÍÇÈ FCB ÇÃç≈ëÂêîÇÕÅA94 ÉoÉCÉgÇÃïWèÄìIÇ» FCB ÉTÉCÉYÇÃèÍçáÇ≈ 348 ÇΔǢǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

íçà”:
ÅwInside Macintosh: FilesÅxÇ≈ÇÕÅAÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇ≈ãñâ¬Ç≥ÇÍÇÈÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇÃç≈ëÂêîÇ 342 ÇΔãLç⁄ǵǃǢNjÇ∑Ç™ÅADZÇÍÇÕåÎÇËÇ≈Ç∑ÅBç≈ëÂÇÕ 348 Ç≈Ç∑ÅB

íçà”:
FCB ÇÃç≈ëÂêîÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉIÅ[ÉvÉìÇ≈Ç´ÇÈÉtÉ@ÉCÉãÇÃç≈ëÂêîÇΔÇÕàŸÇ»ÇËÇ‹Ç∑ÅBÉVÉXÉeÉÄÇ≈ÇÕÅADZÇÍÇÁÇà FCB ÇÃàÍïîÇì‡ïîìIÇ»ñ⁄ìIÇ…égópǵǃǢNjÇ∑ÅBDZÇÃÇÊǧǻ FCB ÇÃégÇ¢ï˚ÇÕÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉCÉìÉvÉäÉÅÉìÉeÅ[ÉVÉáÉìÇçsǧè„Ç≈îÇØÇÈDZÇΔÇÃÇ≈ǴǻǢñ‚ëËÇ≈Ç∑Ç™ (HFS ÉJÉ^ÉçÉOÇ‚ÉGÉNÉXÉeÉìÉgÉtÉ@ÉCÉãÇ…égópÇ∑ÇÈ FCB ǻǫ)ÅAǪÇÃëºÇÃÉtÉ@ÉCÉãÇÕÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇ…ÇÊǡǃñæé¶ìIÇ…ÉIÅ[ÉvÉìÇ≥ÇÍÇ‹Ç∑ (ÉVÉXÉeÉÄÉtÉ@ÉCÉãÇ‚Ç≥NjǥNjǻã§óLÉâÉCÉuÉâÉäǻǫ)ÅBÉÇÉ_ÉìÉVÉXÉeÉÄÇ≈ÇÕëΩêîÇÃÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇä«óùǵǃǮÇËÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÉ\ÉtÉgÉEÉFÉAÇ≈égópâ¬î\Ç» FCB ÇÃêîÇÕǴǗǵÇ≠êßå¿Ç≥ÇÍǃǢNjÇ∑ÅBÇΩÇΔǶnjÅAMac OS 8.6 ÇÃä»à’ÉCÉìÉXÉgÅ[ÉãÇçsǧèÍçáÅAFinder Ç™ï\é¶Ç≥ÇÍÇÈÇ‹Ç≈Ç…ÅAÇ∑Ç≈Ç… 100 å¬ÇÃÉtÉ@ÉCÉãÇ™ÉIÅ[ÉvÉìÇ≥ÇÍǃǢNjÇ∑ÅB

å›ä∑ê´Ç…ä÷Ç∑ÇÈíçà”

ÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇÕÉpÉuÉäÉbÉNÇ»ÉfÅ[É^ç\ë¢ëÃÇ≈ÇÕdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅBWhile the format is well knownóit is described in Technote 1089, ÅuTechnote 1089, HFS DžǬǢǃ (â¸í˘î≈)ÅvÇ…ãLç⁄Ç≥ÇÍǃǢÇÈÉtÉHÅ[É}ÉbÉgÇÕÇÊÇ≠ímÇÁÇÍǃǢNjÇ∑Ç™ÅADZÇÍÇÁÇÃê‡ñæÇÕÅADZÇÃÉtÉHÅ[É}ÉbÉgÇ÷ÇÃàÀë∂Ç™è´óàìIÇ…å›ä∑ê´ÇÃñ‚ëËÇà¯Ç´ãNDZÇ∑â¬î\ê´Ç™Ç†ÇÈÇΔǢǧåxçêÇä‹ÇÒÇ≈ǢNjÇ∑ÅB

ÇΩÇæÇµÅAFSFCBLen ÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉãÇ…ÇÕÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍÇΩégÇ¢ï˚ÅAÇ∑Ç»ÇÌÇøÉVÉXÉeÉÄÇ≈ HFS Ç™égópâ¬î\Ç≈džÇÈǩǫǧǩÇîªífÇ∑ÇÈÇΔǢǧégÇ¢ï˚ǙdžÇËÇ‹Ç∑ÅBDZÇÃÉÅÉJÉjÉYÉÄÇÕÅAÅuTechnote FL_35, Determining Which File System Is ActiveÅvÇ≈ê‡ñæÇ≥ÇÍǃǢNjÇ∑ÅBDZÇÃéËñ@Ç≈ÇÕÅAHFS Ç™égópâ¬î\Ç»èÍçáÇ… FSFCBLen Ç™ê≥ÇÃêîÇ≈džÇËÅAǪǧÇ≈ǻǢèÍçáÇ…ÇÕïâÇÃêîÇ≈džÇÈDZÇΔÇ™óvãÅÇ≥ÇÍÇ‹Ç∑ÅBǪÇÃïÑçÜÇÉeÉXÉgÇ∑ÇÈDZÇΔà»äOÇ… FSFCBLen DžǬǢǃÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍÇΩégÇ¢ï˚ÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

System 7.0 éûë„

System 7.0 ÇÕÅAFCB Ç…ä÷òAÇ∑ÇÈÇ¢Ç≠ǬǩÇÃêVǵǢÉtÉ@ÉCÉãÉVÉXÉeÉÄã@î\Çì±ì¸ÇµÇ‹ÇµÇΩÅBDZÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAǪÇÍÇÁÇÃã@î\DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅBǻǮÅASystem 7 ÇΔ Mac OS 8 ÇÃÇ∑Ç◊ǃÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇégópǵÅADZÇÃÉtÉHÅ[É}ÉbÉgÇ©ÇÁëΩêîÇÃÉvÉçÉpÉeÉBÇåpè≥ǵǃǢNjÇ∑ÅB

ÉpÉâÉåÉã FCB ÉeÅ[ÉuÉã

System 7.0 ÇÕÅAÉvÉçÉZÉXÇ≤ÇΔÇ… FCB ÇÃégópèÛãµÇí«ê’Ç∑ÇÈç≈èâÇÃÉVÉXÉeÉÄÇ≈ǵÇΩÅBdžÇÈÉvÉçÉZÉXÇ™ÉtÉ@ÉCÉãÇÉIÅ[ÉvÉìÇ∑ÇÈÇΔÇ´ÅAëŒâûÇ∑ÇÈ FCB ÇÕǪÇÃÉvÉçÉZÉXÇ…ëÆÇ∑ÇÈLJÇÃÇΔǵǃÉ^ÉOÇÇ¬ÇØÇÁÇÍÇ‹Ç∑ÅBǪÇÃÉvÉçÉZÉXÇ™ïsà”Ç…èIóπǵǃǵNjǧÇΔÅAProcess Manager ÇÕǪÇÃÉvÉçÉZÉXÇ…ÇÊǡǃèäóLÇ≥ÇÍǃǢÇΩÇ∑Ç◊ǃÇà FCB Çé©ìÆìIÇ…ÉNÉçÅ[ÉYǵNjÇ∑ÅB

écîOǻDZÇΔÇ…ÅAÉNÉâÉVÉbÉN FCB Ç…ÇÕèäóLÉvÉçÉZÉXÇà ProcessSerialNumber (PSN) Çäiî[Ç∑ÇÈÇΩÇflÇÃóÃàÊǙdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅBFCB ÇëùëÂÇ≥ÇπÇÈDZÇΔÇÕâ¬î\Ç≈ǵÇΩÇ™ (FSFCBLen ÇïœçXǵǃ)ÅADZÇÍÇ™å¥àˆÇ≈ 2 ǬÇÃèdóvÇ»ïsìsçáÇ™î≠ê∂ǵǃǢNjǵÇΩÅB

  1. ÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇÃÉTÉCÉYÇÕ 32KB Ç…êßå¿Ç≥ÇÍǃǢÇÈÇΩÇflÅAFCB ÇÃÉTÉCÉYÇëÂÇ´Ç≠Ç∑ÇÈÇΔÅAFCB ÇÃç≈ëÂêîÇ™å∏è≠ǵǃǵNjǧÅB
  2. FCB ÇÃÉTÉCÉYÇëÂÇ´Ç≠Ç∑ÇÈÇΔÅAÉnÅ[ÉhÉRÅ[ÉhÇ≥ÇÍÇΩ sizeof(FCBRec) ÇÉRÅ[ÉhÇ…ë}ì¸ÇµÇƒÇ¢ÇÈÉfÉxÉçÉbÉpÇ…å›ä∑ê´ÇÃñ‚ëËÇ™î≠ê∂Ç∑ÇÈâ¬î\ê´Ç™Ç†ÇÈ ÅB(bad developers!).

DZÇÍÇ…ë„ÇÌǡǃÅASystem 7 ÇÕÉpÉâÉåÉã FCB ÉeÅ[ÉuÉãÇΔǢǧäTîOÇì±ì¸ÇµÇ‹ÇµÇΩÅBDZÇÃÉeÅ[ÉuÉãÇÕÅAÉtÉ@ÉCÉãÇÉIÅ[ÉvÉìǵÇΩÉvÉçÉZÉXÇà PSN Çäiî[ǵÅAÉvÉçÉZÉXÇ™èIóπǵÇΩÇΔÇ´Ç…ÅAǪÇÃÉvÉçÉZÉXÇ…ÇÊǡǃÉIÅ[ÉvÉìÇ≥ÇÍÇΩNjNjDžǻǡǃǢÇÈÉtÉ@ÉCÉãÇÇ∑Ç◊ǃÉNÉçÅ[ÉYÇ∑ÇÈÇΩÇflÇ…égópÇ≥ÇÍNjǵÇΩÅB

èdóv:
ÉpÉâÉåÉã FCB ÉeÅ[ÉuÉãÇÕÉTÅ[ÉhÉpÅ[ÉeÉBÇÃÉfÉxÉçÉbÉpå¸ÇØÇ…ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍÇΩDZÇΔÇÕÇ»Ç≠ÅAMac OS 9.0 Ç≈ÇÕçÌèúÇ≥ÇÍǃǵNjǢNjǵÇΩÅBDZDZÇ≈ÇÕÅAíPÇ»ÇÈèÓïÒÇΔÇµÇƒÇæÇØÉpÉâÉåÉã FCB ÉeÅ[ÉuÉãDžǬǢǃê‡ñæÇµÇƒÇ¢ÇÈÇ‹Ç≈Ç≈ÅADZÇÃÉeÅ[ÉuÉãÇ‹ÇΩÇÕǪÇÃÉCÉìÉvÉäÉÅÉìÉeÅ[ÉVÉáÉìÇÃè⁄ç◊Ç…àÀë∂ǵǻǢÇÊǧDžíçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅB

Process Manager ÇÕÅAìØä˙ìIÇ…ÉIÅ[ÉvÉìÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉãÇí«ê’Ç∑ÇÈÇæÇØÇ≈Ç∑ÅBProcess Manager Ç≈ÇÕÅAîÒìØä˙ìIÇ…ÉIÅ[ÉvÉìÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉã (ÇΩÇΔǶnjÅAPBHOpenDFAsync Çégǡǃ) Çí«ê’Ç≈Ç´Ç‹ÇπÇÒÅBÇ»Ç∫Ç»ÇÁÅADZÇÍÇÁÇÃåƒÇ—èoǵÇÕäÑÇËçûÇ›éûÇ…é¿çsÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑Ç™ÅAäÑÇËçûÇ›éûÇ…èäóLÉvÉçÉZÉXÇä»íPÇ…îªífÇ∑ÇÈï˚ñ@ÇÕë∂ç›ÇµÇ»Ç¢ÇΩÇflÇ≈Ç∑ÅB

ìÆìIÇ…ägëÂÇ∑ÇÈ FCB ÉeÅ[ÉuÉã

System 7.0 ÇÕÇ≥ÇÁÇ…ÅAFCB ÉeÅ[ÉuÉãÇìÆìIÇ…ägëÂÇ∑ÇÈÉÅÉJÉjÉYÉÄLJì±ì¸ÇµÇ‹ÇµÇΩÅBFCB ÉeÅ[ÉuÉãǙǢǡǜǢDžǻǡǃǢÇÈÇΔÇ´Ç…ÉvÉçÉOÉâÉÄÇ™ÉtÉ@ÉCÉãÇÉIÅ[ÉvÉìǵÇÊǧÇΔÇ∑ÇÈÇΔÅAÉVÉXÉeÉÄÇÕ tmfoErr (-42) Çï‘ǵNjÇ∑ÅBSystem 7.0 Ç≈DZÇÃÇÊǧǻèÛãµÇ™î≠ê∂Ç∑ÇÈÇΔÅAÉVÉXÉeÉÄÇÕÉGÉâÅ[Çïflë®ÇµÅAFCB ÉeÅ[ÉuÉãÇÃägëÂÇééÇ›ÇΩå„ÅAÉtÉ@ÉCÉãÉIÅ[ÉvÉìÇçƒééçsǵNjÇ∑ÅBÉVÉXÉeÉÄÇ™ FCB ÉeÅ[ÉuÉãÇägëÂÇ≈Ç´ÇÈÇÃÇÕÅAéüÇÃèåèÇ™ñûÇΩÇ≥ÇÍǃǢÇÈÇΔÇ´ÇæÇØÇ≈Ç∑ÅB

  • ÉtÉ@ÉCÉãÇÉIÅ[ÉvÉìÇ∑ÇÈÉäÉNÉGÉXÉgÇ™ìØä˙ìIÇ…é¿çsÇ≥ÇÍÇΩÅBîÒìØä˙ÉäÉNÉGÉXÉg (ÇΩÇΔǶnjÅAPBHOpenDFAsync ÇégÇ¡ÇΩ) ÇÕêˆç›ìIÇ…äÑÇËçûÇ›éûÇ…é¿çsÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÅAäÑÇËçûÇ›éûÇ… Memory Manager ÇåƒÇ—èoǵǃ FCB ÉeÅ[ÉuÉãÇägëÂÇ∑ÇÈÇÃÇÕïsê≥Ç»èàóùÇ≈Ç∑ÅB
  • ÉVÉXÉeÉÄÉqÅ[ÉvÇ…êVǵǢÉeÅ[ÉuÉãÇäiî[Ç∑ÇÈÇΩÇflÇÃè\ï™Ç»óÃàÊǙdžÇÈÅB
  • ÉeÅ[ÉuÉãÇ™ FCB ÇÃç≈ëÂílÇ≈džÇÈ 348 ÇÊÇËLJè¨Ç≥Ç¢ÅB

FCB ÉeÅ[ÉuÉãÇ™äÆëSÇ…Ç¢Ç¡ÇœÇ¢Ç…Ç»Ç¡ÇƒÇ¢Ç»ÇØÇÍÇŒÅAÉtÉ@ÉCÉãÇìØä˙ìIÇ…ÉIÅ[ÉvÉìÇ∑ÇÈÇΔÇ´Ç… tmfoErr ÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇÈDZÇΔÇÕÇ‹Ç∏džÇËÇ‹ÇπÇÒÇ™ÅADZÇÃÇÊǧǻêßå¿Ç™Ç†ÇÈÇΩÇflÅASystem 7.0 Ç‹ÇΩÇÕǪÇÍà»è„Ç≈LJ tmfoErr ÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅB


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

System 7.5 éûë„

System 7.5ÇÕÅAÉVÉXÉeÉÄÉtÉ@ÉCÉãÇÃàÍïîÇΔǵǃ File System Manager (FSM) ÇëgÇ›çûÇÒÇæç≈èâÇÃÉVÉXÉeÉÄÇ≈ǵÇΩÅBFSM ÇÕÅAFCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇÃíméØÇëOíÒÇΔÇ∑ÇÈDZÇΔÇ»Ç≠ÅAFCB Ç÷ÇÃÉAÉNÉZÉXÇâ¬î\Ç…Ç∑ÇÈÇ¢Ç≠ǬǩÇÃÉãÅ[É`ÉìÇíÒãüǵNjÇ∑ÅB

ÇΩÇΔǶnjÅAéüÇÃÇÊǧǻ 4 ǬÇà FCB ÉAÉNÉZÉbÉTä÷êîÇ≈Ç∑ÅB

  1. UTResolveFCB - ÉtÉ@ÉCÉãéQèΔî‘çÜÇ FCB Ç…É}ÉbÉvÇ∑ÇÈÅB
  2. UTIndexFCB - džÇÈÉ{ÉäÉÖÅ[ÉÄè„ÇÃÉIÅ[ÉvÉì FCB Ç…ÉCÉìÉfÉbÉNÉXÇê›íËÇ∑ÇÈÅB
  3. UTLocateFCB - ÉtÉ@ÉCÉãî‘çÜÇΔÉ{ÉäÉÖÅ[ÉÄÇ…ÇÊǡǃ FCB ÇåüçıÇ∑ÇÈÅB
  4. UTLocateNextFCB - ÉtÉ@ÉCÉãî‘çÜ (Ç‹ÇΩÇÕñºëO) ÇΔÉ{ÉäÉÖÅ[ÉÄÇ…ÇÊǡǃǪÇÃëºÇà FCB ÇåüçıÇ∑ÇÈ (UTLocateFCB ÇégópǵÇΩå„Ç≈)ÅB

DZÇÍÇÁÇÃÉãÅ[É`ÉìÇÕÅAFile System Manager SDK ÇÃàÍïîÇ≈džÇÈFile System Manager SDKÇÃíÜÇ≈ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢNjÇ∑ÅB

èdóv:
DZÇÍÇÁÇà FCB ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇÕÅAMac OS 8.5 ÇÊÇËëOÇà InterfaceLib ÇÃíÜÇ…ÇÕë∂ç›ÇµÇ‹ÇπÇÒÅBDTS ÉTÉìÉvÉãÉRÅ[Éh MoreIsBetterÇà MoreInterfaceLib ÉÇÉWÉÖÅ[ÉãÇ…ÇÕÅAà»ëOÇÃÉVÉXÉeÉÄÇ≈ CFM ÉRÅ[ÉhÇ©ÇÁDZÇÍÇÁÇÃÉãÅ[É`ÉìÇåƒÇ—èoÇ∑ÇΩÇflÇà Mixed Mode ÉOÉãÅ[Ç™ä‹Ç‹ÇÍǃǢNjÇ∑ÅB

èdóv:
Mac OS 9.0 Ç≈ÇÕÅAUTIndexFCB ÇÕÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNLJï‘ǵNjÇ∑ÅBÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇ…ÇÃÇ›ä÷êSǙdžÇÈèÍçáÇÕÅAå„èqÇÃéËñ@ÇégǡǃÅADZÇÍÇÁÇÃÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇñæé¶ìIÇ…ÉXÉLÉbÉvÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

íçà”:
DZÇÍÇÁÇà FCB ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇÕ Carbon ÇÃàÍïîÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBCarbon ÉRÅ[ÉhÇ…ÇÕÅAFCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇÕä‹Ç‹ÇÍǃǢNjÇπÇÒÅBè⁄ç◊DžǬǢǃÇÕÅAÅuåªé¿Ç…ë¶ÇµÇΩíÒàƒÅvÇÃÉZÉNÉVÉáÉìÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

DZÇÍÇÁÇà FCB ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇÕÅALJÇΔLJÇΔ FSM ÉvÉâÉOÉCÉì (Ç®ÇÊǗǪÇÃëºÇÃäOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄ) Ç…ÇÊÇÈégópÇëzíËǵǃǢNjǵÇΩÇ™ÅAëºÇÃÉRÅ[ÉhÇÃíÜÇ≈DZÇÍÇÁÇÃÉãÅ[É`ÉìÇégǡǃLJâΩÇÁñ‚ëËÇÕdžÇËÇ‹ÇπÇÒÅBÇΩÇæÇµÅADZÇÍÇÁÇÃÉãÅ[É`ÉìÇégópÇ∑ÇÈëOÇ…Åuåªé¿Ç…ë¶ÇµÇΩíÒàƒÅvÇÃÉZÉNÉVÉáÉìÇì«ÇÒÇ≈ÅAFile Manager ÉãÅ[É`Éì (ÇΩÇΔǶnjÅAFSGetForkCBInfo) ÇégópÇ∑ÇÈï˚Ç™ÇfiǵÇÎå´ñæÇ≈ÇÕǻǢǩǫǧǩÇîªífǵǃÇ≠ÇæÇ≥Ç¢ÅB

éüÇÃÉRÅ[ÉhÇégópÇ∑ÇÈÇΔÅADZÇÍÇÁÇÃÉãÅ[É`ÉìÇÃÉAÉxÉCÉâÉrÉäÉeÉBÇÉeÉXÉgÇ≈Ç´Ç‹Ç∑ÅB

static Boolean HasFCBAccessors(void)
{
    Boolean result;
    long    response;
                  
    result = false;
    
    // FSM Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈDZÇΔÇämîFÇ∑ÇÈ
    
    if ( Gestalt(gestaltFSAttr, &response) == noErr ) {
        if ( (response & (1L << gestaltHasFileSystemManager)) != 0 ) {
                  
            // FSM 1.2 ÇÕÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢÇÈ API ÇÉTÉ|Å[ÉgÇ∑ÇÈ
            // ç≈èâÇÃÉoÅ[ÉWÉáÉìÇ≈džÇÈÇΩÇflÅAÉoÅ[ÉWÉáÉìÇÉ`ÉFÉbÉNÇ∑ÇÈ
            
            if ( Gestalt(gestaltFSMVersion, &response) == noErr ) {
                  
                // FSM 1.2 Ç‹ÇΩÇÕǪÇÍà»è„Ç≈džÇÈDZÇΔÇämîFÇ∑ÇÈ
                
                if ( (unsigned long)response >= 0x0120) {
                    result = true;
                }
            }
        }
    }
    return result;
}


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

Mac OS 8.1 éûë„

Mac OS 8.1 ÇÕÅAêVǵǢëgÇ›çûÇ›É{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇ≈džÇÈHFS Plus.Çì±ì¸ÇµÇ‹ÇµÇΩÅBMac OS 8.1 Ç≈ÇÕÅAFile Manager ÇÃì‡ïîDžǩǻÇËëÂÇ´Ç»ïœçXÇ™â¡Ç¶ÇÁÇÍNjǵÇΩÇ™ÅAFCB ÉeÅ[ÉuÉãÇÃïœçXÇÕÇ≤Ç≠ÇÌÇ∏Ç©Ç≈ǵÇΩÅB

HFS Plus ÇÕǪÇÃÉGÉNÉXÉeÉìÉgèÓïÒÇäiî[Ç∑ÇÈÇΩÇflÇ…ÇÊÇËëÂÇ´Ç»óÃàÊÇïKóvÇΔÇ∑ÇÈÇΩÇflÅAç≈LJèdóvÇ»ïœçXÇ™óvãÅÇ≥ÇÍNjǵÇΩÅBÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉã ÇÕ FCB Çà fcbExtRec ÇÃíÜÇ…ÉtÉ@ÉCÉãÇÃêÊì™Ç©ÇÁ 3 ǬÇÃÉGÉNÉXÉeÉìÉgÇäiî[ǵNjÇ∑ÅBDZÇÃÇΔÇ´ÅAǪÇÍǺÇÍÇÃÉGÉNÉXÉeÉìÉgÇÕ 16 ÉrÉbÉgÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNî‘çÜÇ≈ÅA16 ÉrÉbÉgÇÃí∑Ç≥ÇéùÇøÇ‹Ç∑ÅBàÍï˚ÅAHFS Plus Ç≈ÇÕÉtÉ@ÉCÉãÇÃêÊì™Ç©ÇÁ 8 ǬÇÃÉGÉNÉXÉeÉìÉgÇäiî[Ç∑ÇÈïKóvǙdžÇËÅAǪÇÍǺÇÍÇÃÉGÉNÉXÉeÉìÉgÇÕ 32 ÉrÉbÉgÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNî‘çÜÇ≈ÅA32 ÉrÉbÉgÇÃí∑Ç≥ÇéùÇøÇ‹Ç∑ÅBDZÇÃÇΩÇflÅAêVǵǢÉGÉNÉXÉeÉìÉgÉfÅ[É^Ç™ÉNÉâÉVÉbÉN FCB Ç…é˚Ç‹ÇËÇ´ÇÁǻǢDZÇΔÇÕñæÇÁÇ©Ç≈ǵÇΩÅB

DZÇÃñ‚ëËÇÃâåàÇ…çÃópÇ≥ÇÍÇΩï˚ñ@ÇÕÅAHFS Plus É{ÉäÉÖÅ[ÉÄè„ÇÃÉtÉ@ÉCÉãÇ…ëŒÇ∑ÇÈÉGÉNÉXÉeÉìÉgÉfÅ[É^ÇÉpÉâÉåÉã FCB ÉeÅ[ÉuÉãÇ…äiî[ǵÅAFCB Çà fcbExtRec ÉtÉBÅ[ÉãÉhÇÕñ¢égópÇÃNjNj (ǵǩLJÉ[ÉçÇ…ê›íËǵǃ) écÇ∑ÇΔǢǧLJÇÃÇ≈ǵÇΩÅBÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇÇŸÇΔÇÒÇ«ïœçXǵǻǢNjNjécÇ∑ÇΩÇflÅADZÇÍÇÕîÒèÌÇ…å›ä∑ê´ÇÃçÇÇ¢âåàï˚ñ@Ç≈ǵÇΩÅBîjí]Ç∑ÇÈÇÃÇÕ fcbExtRec Ç…àÀë∂Ç∑ÇÈÉ\ÉtÉgÉEÉFÉAÇæÇØÇ≈Ç∑Ç™ÅADZÇÃÇÊǧǻÉ\ÉtÉgÉEÉFÉAÇÕÅAêVǵǢÇÊÇËëÂÇ´Ç»ÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNî‘çÜÇ…ÇÊÇËÅAÇ¢Ç∏ÇÍÇÕîjí]Ç∑ÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

Mac OS 9.0 éûë„

DZÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAMac OS 9.0 File Manager Çà FCB Ç…ä÷òAÇ∑ÇÈã@î\DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅBÇ‹ÇΩÅAMac OS 9.0 Ç≈â¡Ç¶ÇÁÇÍÇΩïœçXÇÃîwå„DždžÇÈçáóùìIÇ»ç™ãíLJé¶ÇµÇ‹Ç∑ÅBÇ≥ÇÁÇ…ÅAÉIÅ[ÉvÉìÉtÉ@ÉCÉãêîÇ…ëŒÇ∑ÇÈêVǵǢêßå¿Ç™ 8,169 DžǻǡÇΩóùóRDžǬǢǃLJê‡ñæÇµÇ‹Ç∑ÅB

Design Goals

Mac OS 9.0 Ç…ÇÕÅAéüÇÃÇÊǧǻ File Manager Ç…ëŒÇ∑ÇÈëÂïùÇ»ägí£Ç™ëgÇ›çûÇ‹ÇÍǃǢNjÇ∑ÅB

  • í∑Ç¢ÉtÉ@ÉCÉãñº (255 Unicode ï∂éö) Ç‚ÉTÉCÉYÇÃëÂÇ´Ç»ÉtÉ@ÉCÉã (> 2 GB) ǻǫÇà HFS Plus ÇÃã@î\Ç…ÉAÉNÉZÉXÇ∑ÇÈÇΩÇflÇÃêVǵǢÉvÉçÉOÉâÉ~ÉìÉOÉCÉìÉ^ÉtÉFÅ[ÉX
  • ÉIÅ[ÉvÉìÉtÉ@ÉCÉãêîÇÃêßå¿Ç 348 Ç©ÇÁ 8169 Ç…ägëÂÇ∑ÇÈêVǵǢ FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉg
  • ëÂïîï™Çà File Manager åƒÇ—èoǵÇÉvÉäÉGÉìÉvÉeÉBÉuÉ^ÉXÉN (MP É^ÉXÉN) Ç©ÇÁé¿çsÇ∑ÇÈã@î\

ägí£Ç≥ÇÍÇΩ File Manager Ç…ëŒÇ∑ÇÈê›åvèåèÇà 1 ǬÇÕÅADZÇÍÇ‹Ç≈Ç…ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢÇÈÉvÉçÉOÉâÉ~ÉìÉOÉCÉìÉ^ÉtÉFÅ[ÉXÇégópǵǃǢÇÈÉ\ÉtÉgÉEÉFÉAÇê≥èÌÇ…ìÆçÏÇ≥ÇπǬǬÅADZÇÍÇÁÇÃêVǵǢã@î\ÇÉCÉìÉvÉäÉÅÉìÉgÇ∑ÇÈÇΔǢǧDZÇΔÇ≈ǵÇΩÅBÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇÃç≈ëÂêîÇëùâ¡Ç≥ÇπÇÈÇΩÇflÇ…ÇÕ FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…ïœçXÇâ¡Ç¶ÇÈïKóvǙdžÇËÇ‹Ç∑Ç™ÅADZÇÃÉtÉHÅ[É}ÉbÉgÇÕÉfÉxÉçÉbÉpÇ™àÀë∂Ç≈Ç´ÇÈLJÇÃÇΔǵǃDZÇÍÇ‹Ç≈ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢNjÇπÇÒÇ≈ǵÇΩÅB

íçà”:
FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇ…àÀë∂Ç∑ÇÈDZÇΔÇÃäÎåØê´ÇÕDZÇÍÇ‹Ç≈åJÇËï‘ǵåxçêÇ≥ÇÍǃǴNjǵÇΩÅB

  • ÅwInside Macintosh IIÅx (127 ÉyÅ[ÉW)Åuåxçê: ÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÃÉTÉCÉYÇΔç\ë¢ÇÕ Macintosh ÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ïœçXÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑Åv
  • ÅwInside Macintosh IVÅx (181 ÉyÅ[ÉW)Åuåxçê: ÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÃÉTÉCÉYÇΔç\ë¢ÇÕ Macintosh ÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ïœçXÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑Åv
  • ÅwInside Macintosh VÅx (386 ÉyÅ[ÉW)ÅuÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN (FCB)ÅAÉ{ÉäÉÖÅ[ÉÄÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN (VCB) ǻǫÇÃÉVÉXÉeÉÄÉfÅ[É^ç\ë¢ëÃÇÉÅÉÇÉäì‡Ç≈íºê⁄ìIÇ…åüç∏Ç‹ÇΩÇÕëÄçÏǵǻǢÇ≈Ç≠ÇæÇ≥Ç¢ÅBFile Manager åƒÇ—èoǵÇégǡǃÅAFCB Ç®ÇÊÇ— VCB èÓïÒÇ…ÉAÉNÉZÉXǵNjÇ∑
  • ÅwInside Macintosh: FilesÅx, (2-81 ÉyÅ[ÉW)Åuíçà”: ÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÃÉTÉCÉYÇΔç\ë¢ÇÕ Macintosh ÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ïœçXÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBà¿ëSÇÃÇΩÇflÅAFile Manager ä÷êîÇà PBGetFCBInfo ÇåƒÇ—èoǵǃÅAÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇ…äÑÇËìñǃÇÁÇÍǃǢÇÈ FCB ÇÃèÓïÒÇéÊìæÇµÇƒÇ≠ÇæÇ≥Ç¢Åv
  • ÅuTechnote 1089, HFS DžǬǢǃ (â¸í˘î≈)Åv ÅuéüÇÃó·ÇÕÅAê‡ñæÇñ⁄ìIÇΔǵǃdžÇ∞ÇÁÇÍǃǢÇÈÇæÇØÇ≈Ç∑ÅBDZÇÃó·ÇǪÇÃNjNjégópÇ∑ÇÈÇΔÅAè´óàÇÃÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇΔÇÃä‘Ç≈å›ä∑ê´ÇÃñ‚ëËÇ™î≠ê∂Ç∑ÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑Åv

Gestalt

Mac OS 9.0 Ç≈ÇÕÅAÉVÉXÉeÉÄÇ™êVǵǢ FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇégópǵǃǢÇÈDZÇΔÇΔÅAFCBSPtrÅAFSFCBLenÅAÇ‹ÇΩÇÕǪÇÍÇÁÇÃÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉbÉTÉãÅ[É`Éì (LMGetFSFCBLen ÇèúÇ≠) Ç…àÀë∂Ç≈ǴǻǢDZÇΔÇé¶Ç∑êVǵǢ Gestalt ÉrÉbÉgÇ™íËã`Ç≥ÇÍǃǢNjÇ∑ÅBDZÇà Gestalt ÉrÉbÉgÇÕ gestaltFSAttr Çà gestaltMustUseFCBAccessors (ÉrÉbÉg 13) Ç≈Ç∑ÅBå¥ë•ÇΔǵǃÅAFCB ÉAÉNÉZÉbÉTÇégópÇ∑Ç◊ǴǩǫǧǩÇîªífÇ∑ÇÈÇΩÇflDžDZÇà Gestalt ÉrÉbÉgÇégópǵǻǢÇ≈Ç≠ÇæÇ≥Ç¢ÅBÇfiǵÇÎÅAégópâ¬î\Ç»èÍçáÇÕÅAèÌÇ… FCB ÉAÉNÉZÉbÉTÇégópÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB

ëÂÇ´Ç»ïœçX

Mac OS 9.0 Ç≈ÇÕÅAFCB èÓïÒÇ™ÉvÉâÉCÉxÅ[ÉgÉeÅ[ÉuÉãÇ…äiî[Ç≥ÇÍÇÈÇÊǧDžǻÇËNjǵÇΩÅBÇΩÇæÇµÅADZÇÃÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇÕÉfÉxÉçÉbÉpå¸ÇØÇ…ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢNjÇπÇÒÅB

DZÇÍÇ‹Ç≈ÉpÉâÉåÉã FCB ÉeÅ[ÉuÉãÇ…äiî[Ç≥ÇÍǃǢÇΩèÓïÒÇÕägí£ FCB ÇÃíÜÇ…Ç‹ÇΔÇflÇÁÇÍNjǵÇΩÅBägí£ FCB ÇÕÅAFSM.h ÉtÉ@ÉCÉãÇÃíÜÇ≈ ForkControlBlock å^Ç…ÇÊǡǃíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

Ç‹ÇΩÅAMac OS 9.0 ÇÕ FCB ÉeÅ[ÉuÉãì‡Ç…ÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇäiî[ǵNjÇ∑ÅBè⁄ç◊DžǬǢǃÇÕÅAÅuÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÅv ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

FCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇïKóvÇΔÇ∑ÇÈÉfÉxÉçÉbÉpÇÕFSM ÉAÉNÉZÉbÉTÇégópÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAMac OS 9.0 Ç…ÇÕÇ≥ÇÁÇ…Ç¢Ç≠ǬǩÇà FSM ÉAÉNÉZÉbÉTÇ™ì±ì¸Ç≥ÇÍNjǵÇΩÅBè⁄ç◊DžǬǢǃÇÕÅAÅuêVǵǢ FSM ÉAÉNÉZÉbÉTÅv ÇÃÉZÉNÉVÉáÉìÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

68K ÉRÅ[ÉhÇΔÉçÅ[ÉÅÉÇÉä

FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…ëÂó ÇÃïœçXÇ™â¡Ç¶ÇÁÇÍÇΩDZÇΔÇçlǶÇÍÇŒÅAÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…ä÷òAÇ∑ÇÈÉçÅ[ÉÅÉÇÉäÉOÉçÅ[ÉoÉã (ëOèqǵÇΩFCBSPtr ÇΔ FSFCBLen) ǙLJÇÕÇ‚âΩÇÃà”ñ°Ç‡éùÇΩǻǢDZÇΔÇñæÇÁÇ©Ç≈Ç∑ÅBApple Ç≈ÇÕLJÇΔLJÇΔÅADZÇÍÇÁÇÃïœêîÇ…ÅAÉAÉNÉZÉXÇ∑ÇÈÇΔÉoÉXÉGÉâÅ[Çà¯Ç´ãNDZÇ∑ÇÊǧǻílÇê›íËǵÇÊǧÇΔçlǶǃǢNjǵÇΩÇ™ÅAÇ≥NjǥNjǻåüì¢Çâ¡Ç¶ÇΩåãâ ÅADZÇÃÇÊǧǻÉ|ÉäÉVÅ[Ç…óéÇøÇ¬Ç´Ç‹ÇµÇΩÅB

écîOǻǙÇÁÅAApple Ç™íÒãüÇ∑ÇÈ GetVRefNum ÇÃÉOÉãÅ[ÇÕÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…àÀë∂ǵǃǢNjÇ∑ÅBDZÇÃÉOÉãÅ[ÇÕëΩÇ≠Çà 68K ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ê√ìIÇ…ÉäÉìÉNÇ≥ÇÍǃǢÇÈÇΩÇflÅAApple Ç≈ÇÕÉNÉâÉVÉbÉN FCB ÉeÅ[ÉuÉãÇäÆëSÇ…îrèúÇ≈Ç´Ç‹ÇπÇÒÇ≈ǵÇΩÅBÇfiǵÇÎÅADZÇÃÉOÉãÅ[Ç™ê≥èÌÇ…ìÆçÏǵë±ÇØÇÈÇÊǧDžÅAÉtÉFÉCÉN FCB ÉeÅ[ÉuÉãÇ™íçà”ê[Ç≠ëgÇ›óßǃÇÁÇÍǃǢNjÇ∑ÅB

íçà”:
Apple Ç™íÒãüÇ∑ÇÈ GetVRefNum ÇÃÉOÉãÅ[ÇÕÅAÇ≥NjǥNjǻäJî≠ä¬ã´ÇÃÇ≥NjǥNjǻÉâÉCÉuÉâÉäÇÃíÜÇ…ëgÇ›çûÇ‹ÇÍǃǢNjÇ∑ÅB

  • MPW ÇÕÅuInterface.oÅvÇÃíÜÇ… GetVRefNum Çä‹ÇÒÇ≈ǢNjÇ∑ÅB
  • CodeWarrior ÇÕÅuMacOS.libÅvÇÃíÜÇ… GetVRefNum Çä‹ÇÒÇ≈ǢNjÇ∑ÅB
  • Think C Ç®ÇÊÇ— Symantec C ÇÕÅuMacTrapsÅvÇÃíÜÇ… GetVRefNum Çä‹ÇÒÇ≈ǢNjÇ∑ÅB
  • Think Pascal ÇÕÅuInterface.LibÅvÇÃíÜÇ… GetVRefNum Çä‹ÇÒÇ≈ǢNjÇ∑ÅB

ÉtÉFÉCÉN FCB ÉeÅ[ÉuÉãÇÕDZÇÍÇ‹Ç≈ìØólÅAFCBSPtr Ç…ÇÊǡǃÉ|ÉCÉìÉgÇ≥ÇÍÇ‹Ç∑Ç™ÅAFSFCBLen ÇÕ 4 Ç…ê›íËÇ≥ÇÍǃǢNjÇ∑ÅBÉeÅ[ÉuÉãÇÕÅAÉVÉXÉeÉÄè„Ç…é¿ç€Ç…ë∂ç›Ç∑ÇÈäe FCB Ç…ëŒâûǵÇΩï°êîÇÃÉtÉFÉCÉN FCB Ç©ÇÁç\ê¨Ç≥ÇÍǃǢNjÇ∑ÅBÉtÉFÉCÉN FCB ÇÕ FSFCBLen (4 ÉoÉCÉg) Ç…ÇÊǡǃîzíuÇ≥ÇÍÅAǪÇÍǺÇÍÇÕÅAÉtÉFÉCÉN FCB ì‡Ç÷Çà 20 ($14) ÉoÉCÉgÇÃÉIÉtÉZÉbÉg (FSFCBLen Ç…ÇÊǡǃÉåÉ|Å[ÉgÇ≥ÇÍÇÈÅAFCB ÇÃã´äEÇ $10 ÉoÉCÉgí¥Ç¶ÇΩà íu) Ç…óLå¯Ç» fcbVPtr Çä‹ÇÒÇ≈ǢNjÇ∑ÅBéüÇÃê}ÇÕDZÇÃÉåÉCÉAÉEÉgÇê}éÆâªÇµÇΩLJÇÃÇ≈Ç∑

tn1184.2.gif

DZÇÃÉåÉCÉAÉEÉgÇ…ÇÊÇËÅAGetVRefNum ÇÕÅAÇ∑Ç◊ǃÉtÉFÉCÉN FCB ÉeÅ[ÉuÉãÇégópǵǃÅAFCB ÉeÅ[ÉuÉãÇÃåüçıÅAÉtÉ@ÉCÉãéQèΔî‘çÜÇ™óLå¯Ç≈džÇÈǩǫǧǩÇÃÉ`ÉFÉbÉNÅAÇ®ÇÊÇ— FCB Çà fcbVPtr ÉtÉBÅ[ÉãÉhÇÃåüçıÇçsǧDZÇΔÇ™Ç≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB

íçà”:
éüÇ…ÅAInterface.o Çà GetVRefNum ÉOÉãÅ[ÇãtÉAÉZÉìÉuÉãǵÇΩåãâ Çé¶ÇµÇ‹Ç∑ÅB

; function GetVRefNum(fileRefNum: integer; VAR vRefNum: integer): OSErr;
                           
GetVRefNum
        MOVEA.L    (A7)+,A1         ; ÉäÉ^Å[ÉìÉAÉhÉåÉXÇÉ|ÉbÉv
        MOVEQ      #$00,D1          ; fileRefNum ÇéÊìæ (É[Éçägí£)
        MOVE.W     $0004(A7),D1     ;
        MOVEA.L    FCBSPtr,A0       ; FCB ÉeÅ[ÉuÉãÉ|ÉCÉìÉ^ÇΔ
        MOVE.W     FSFCBLen,D0      ; FCB ÉTÉCÉYÇéÊìæ
        BMI.S      NoHFS            ; ïâÇÃêîÇ»ÇÁ HFS à»ëO
@HFS
        DIVU.W     D0,D1            ; fileRefNum Ç FSFCBLen Ç≈èúéZ
        BRA.S      DoneDivision
@NoHFS
        DIVU.W     #$005E,D1        ; fileRefNum Ç HFS à»ëOÇÃ
                                    ; FCB Ç≈èúéZ
@DoneDivision
        SWAP       D1               ; fileRefNum mod FCB ÉTÉCÉYÇéÊìæ
        SUBQ.W     #$2,D1           ; fileRefNum mod FCB ÉTÉCÉYÇ™
        BNE.S      BadResult        ; 2 Ç≈Ç»ÇØÇÍÇŒÅAÉGÉâÅ[ÉAÉEÉg
                           
        MOVE.W     $0004(A7),D0     ; fileRefNum Ç™ FCB ÉeÅ[ÉuÉãÇÃ
        CMP.W      (A0),D0          ; ÉTÉCÉYÇÊÇËLJëÂÇ´Ç¢èÍçáÇÕÅA
        BCC.S      @BadResult       ; ÉGÉâÅ[Çï‘Ç∑
        
        MOVEA.L    $14(A0,D0.W),A0  ; ìKêÿÇ» FCBÅAVCB Ç÷ÇÃÉ|ÉCÉìÉgÇ©ÇÁ
                                    ; fcbVPtr ÇéÊÇËèoÇ∑
        MOVE.W     $004E(A0),D0     ; VCB Ç©ÇÁ vcbVRefNum ÇéÊÇËèoÇ∑
        MOVEQ      #$00,D1          ; noErr
        BRA.S      @GoodResult
                           
@BadResult
        MOVEQ      #$00,D0
        MOVE.W     #$FFCD,D1        ; rfNumErr
                           
@GoodResult
        MOVEA.L    (A7),A0          ; D0 Ç vRefNum ÇÃíÜÇ…Ç®Ç≠
        MOVE.W     D0,(A0)          ;
        ADDQ.W     #$6,A7           ; ÉpÉâÉÅÅ[É^ÇÉ|ÉbÉv
        MOVE.W     D1,(A7)          ; D1 Çä÷êîÇÃåãâ ÇÃíÜÇ…Ç®Ç≠
        JMP        (A1)             ; åƒÇ—èoǵå≥Ç…êßå‰ÇñflÇ∑

íçà”:
ÉtÉFÉCÉN FCB ÉeÅ[ÉuÉãÇÕÅAÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇÃêîÇ…ëŒÇ∑ÇÈ 8169 ÇΔǢǧêßå¿ÇÃç™ãíDžǻǡǃǢNjÇ∑ÅBà»ëOÇΔìØólÇ…ÅAÉtÉFÉCÉNÉeÅ[ÉuÉãÇÃÉTÉCÉYÇÕ 32KB Ç…êßå¿Ç≥ÇÍǃǢNjÇ∑ÅBSInt16 ÇÉâÉbÉvÇ∑ÇÈÇΩÇflÇ… FCB ÉeÅ[ÉuÉãì‡Çà⁄ìÆÇ∑ÇÈÉRÅ[ÉhÇ™ê∂ê¨Ç≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇÈÇΩÇflÅAç≈å„Çà 94 ÉoÉCÉgÇí¥Ç¶ÇΩà íuÇ… FCB Ç™îzíuÇ≥ÇÍÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÅBǵÇΩǙǡǃÅAÉtÉFÉCÉN FCB Ç≈égópâ¬î\Ç»êîÇÕÅA(32768 - 94 - 2) div 4 + 1ÅAǬNjÇË 8169 Ç…Ç»ÇËÇ‹Ç∑ÅB

PowerPC ÉRÅ[ÉhÇΔÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉbÉT

PowerPC ÉRÅ[ÉhÇÃÉPÅ[ÉXÇÕÇ¢Ç≠ÇÁÇ©íPèÉÇ≈Ç∑ÅBPowerPC ÉRÅ[ÉhÇÃèÍçáÅAGetVRefNum ÇÃÉCÉìÉvÉäÉÅÉìÉeÅ[ÉVÉáÉìÇÕÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉAÇÃàÍïîÇ≈džÇÈÇΩÇflÅAêVǵǢ FCB ÉeÅ[ÉuÉãÉtÉHÅ[É}ÉbÉgÇ…ëŒâûÇ∑ÇÈÇÊǧDžèCê≥Ç≥ÇÍNjǵÇΩÅB

àÍï˚ÅAFCBSPtr Ç®ÇÊÇ— FSFCBLen Ç…ëŒÇ∑ÇÈÉçÅ[ÉÅÉÇÉäÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇÕÇÊÇËãªñ°ê[Ç¢ñ‚ëËÇíÒãNǵNjǵÇΩÅBDZÇÍÇÁÇÃÉãÅ[É`ÉìÇÕ FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇ…àÀë∂ǵǃǢǻǢÇΩÇflÅAÉfÉxÉçÉbÉpÇÕóùò_ìIÇ…ÇÕDZÇÍÇÁÇÃÉãÅ[É`ÉìÇégópǵǃǢǻǢÇÕÇ∏Ç≈ǵÇΩÅBǵǩǵåªé¿Ç…ÇÕÅAã¡Ç≠ÇŸÇ«ëΩÇ≠ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìǙDZÇÍÇÁÇÃÉãÅ[É`ÉìÇégópǵǃǢÇÈDZÇΔÇ™ñæÇÁǩDžǻÇËÅAApple Ç≈ÇÕDZÇÍÇÁÇÃÉãÅ[É`ÉìÇÃìÆçÏÇçƒåüì¢ÇπÇ¥ÇÈÇǶǻÇ≠Ç»ÇËNjǵÇΩÅB

ç≈èIìIÇ»åàíËÇÕéüÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB

  • LMGetFCBSPtrÅALMSetFCBSPtrÅAÇ®ÇÊÇ— LMSetFSFCBLen ÇÕÇ∑Ç◊ǃ dsMustUseFCBAccessors (119) ÉVÉXÉeÉÄÉGÉâÅ[Çî≠ê∂Ç≥ÇπÇÈÅB
  • LMGetFSFCBLen ÇÕDZÇÍÇ‹Ç≈ìØól FSFCBLen ÇÃíl (åªç›ÇÕ 4) Çï‘Ç∑ÅB

éüÇ…ÅADZÇÃÇÊǧǻïœçXÇÃç™ãíÇé¶ÇµÇ‹Ç∑ÅB

  • FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉg (FCBSPtr Ç…ÇÊǡǃÉ|ÉCÉìÉgÇ≥ÇÍÇÈ) ÇÕç™ñ{ìIÇ…ïœçXÇ≥ÇÍNjǵÇΩÅBDZÇÃÇΩÇflÅADZÇÃÉtÉHÅ[É}ÉbÉgÇ…àÀë∂Ç∑ÇÈÉ\ÉtÉgÉEÉFÉAÇÕê≥èÌÇ…ìÆçÏǵǻÇ≠Ç»ÇËÇ‹Ç∑ÅBÉ\ÉtÉgÉEÉFÉAÇ™ê≥èÌÇ…ìÆçÏǵǻÇ≠Ç»ÇÈÇÃÇ≈džÇÍÇŒÅAÉ\ÉtÉgÉEÉFÉAÇÃìÆçÏÇÇ≈Ç´ÇÈÇæÇØëÅÇ≠í‚é~Ç≥ÇπÇÈÇÃÇ™ìæçÙÇΔǢǶNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAå√Ç¢É\ÉtÉgÉEÉFÉAÇ…ÇÊǡǃî≠ê∂Ç∑ÇÈâ¬î\ê´ÇÃdžÇÈÉfÅ[É^ÇÃè¡é∏ÇñhÇÆÇ±ÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
  • ñæämÇ»ÉVÉXÉeÉÄÉGÉâÅ[î‘çÜÇégópÇ∑ÇÈDZÇΔÇ≈ÅAÉeÉNÉjÉJÉãÉTÉ|Å[ÉgíSìñé“ǙDZÇÃñ‚ëËÇêvë¨Ç…êfífÇ≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB
  • FSFCBLen Ç…ÇÕÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍÇΩégópñ@(ëOèqǵÇΩÇÊǧDžÅAHFS Ç™ë∂ç›Ç∑ÇÈǩǫǧǩÇÉeÉXÉgǵNjÇ∑) ǙdžÇÈÇΩÇflÅADZÇÃñ⁄ìIÇ≈égópÇ∑ÇÈ FSFCBLen ÇÕç°å„LJê≥èÌÇ…ìÆçÏǵë±ÇØÇ‹Ç∑ÅB

ÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN

Mac OS 9.0 Çà File Manager ÇÕÅuÉCÉeÉåÅ[É^ÅvÇΔåƒÇŒÇÍÇÈêVǵǢÉÅÉJÉjÉYÉÄÇì±ì¸ÇµÅAÉfÉBÉåÉNÉgÉäì‡Ç‹ÇΩÇÕÉ{ÉäÉÖÅ[ÉÄè„DždžÇÈÇ∑Ç◊ǃÇÃçÄñ⁄ÇåüèoÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBÉCÉeÉåÅ[É^ÇÕÅAì¡íËÇÃÉoÉãÉNÉJÉ^ÉçÉOÉIÉyÉåÅ[ÉVÉáÉìÇÃÉXÉeÅ[É^ÉXÇï€éùÇ∑ÇÈÇΩÇflÇ…égópÇ≥ÇÍÇÈê‚ëŒÉIÉuÉWÉFÉNÉgÇ≈Ç∑ÅBFSIterator ÉfÅ[É^å^Ç…ÇÊǡǃãLèqÇ≥ÇÍÇÈÉCÉeÉåÅ[É^ÇÕÅAFSOpenIterator Ç…ÇÊǡǃçÏê¨Ç≥ÇÍÅAFSCloseIterator Ç…ÇÊǡǃîpä¸Ç≥ÇÍÇ‹Ç∑ÅB

ÉgÉâÉfÉBÉVÉáÉiÉã Mac OS Ç≈ÇÕÅAFSIterator ÇÃÉXÉeÅ[É^ÉXÇÕ FCB ÉeÅ[ÉuÉãì‡Çà ÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN (of type IteratorControlBlock) ÇÃíÜÇ…ï€éùÇ≥ÇÍÇ‹Ç∑ÅBÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÕ FCB Ç…éóǃǢNjÇ∑Ç™ÅAÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇ≈ÇÕÇ»Ç≠ FSIterator ÇÃÉXÉeÅ[É^ÉXÇï€éùÇ∑ÇÈì_Ç™àŸÇ»ÇËÇ‹Ç∑ÅB

FSM ÉAÉNÉZÉbÉTÇégópÇ∑ÇÈÉ\ÉtÉgÉEÉFÉAÇ≈ÇÕÅADZÇÃÇÊǧǻÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÃéÊÇËàµÇ¢Ç…è\ï™íçà”Ç∑ÇÈïKóvǙdžÇËÅADZÇÍÇÁÇ FCB ÇΔǵǃíPèÉÇ…éÊÇËàµÇ§Ç±ÇΔÇæÇØÇÕê‚ëŒÇ…îÇØÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBFCB Çà moreFlags ÉtÉBÅ[ÉãÉhÇ…ä‹Ç‹ÇÍÇÈ fcbIteratorBit ÇÉeÉXÉgÇ∑ÇÈDZÇΔÇ≈ÅAIteratorControlBlock ÇΔ ForkControlBlock ÇñæämÇ…éØï Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

èdóv:
FCB Çà moreFlags ÉtÉBÅ[ÉãÉhÇÕ Mac OS 9.0 ÇÊÇËëOÇ…ÇÕë∂ç›ÇµÇ‹ÇπÇÒÅBGestaltÇégǡǃÅAÉCÉeÉåÅ[É^ÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇÃÉeÉXÉgÇèåèÇ√ÇØÇƒÇ≠ÇæÇ≥Ç¢ÅB

êVǵǢ FSM ÉAÉNÉZÉbÉT

Mac OS 9.0 ÇÕÅAëOèqǵÇΩÉãÅ[É`ÉìÇï‚ë´Ç∑ÇÈëΩêîÇÃêVǵǢ FSM ÉÜÅ[ÉeÉBÉäÉeÉBÉãÅ[É`ÉìÇì±ì¸ÇµÇ‹ÇµÇΩÅBéüÇÃÇÊǧǻÉãÅ[É`ÉìÇ™ì±ì¸Ç≥ÇÍNjǵÇΩÅB

  • UTGetForkControlBlockSize - FCB ÇÃÉTÉCÉYÇï‘ǵNjÇ∑ÅBLMGetFSFCBLen ÇÕLJÇÕÇ‚égópÇ≈Ç´Ç∏ÅAÉVÉXÉeÉÄÇÃêiâªÇΔÇΔLJDž FCB LJÇ≥ÇÁÇ…ägí£Ç≥ÇÍÇÈDZÇΔÇ™ó\ëzÇ≥ÇÍÇÈÇΩÇflÅADZÇÃÉãÅ[É`ÉìÇ™ïKóvÇ≈Ç∑ÅB
  • UTResolveFileRefNum - éwíËǵÇΩ FCB Ç…ëŒâûÇ∑ÇÈÉtÉ@ÉCÉãéQèΔî‘çÜÇï‘ǵNjÇ∑ÅB
  • UTCheckFCB - FCBRecPtr Ç™óLå¯Ç» FCB ÇÉ|ÉCÉìÉgǵǃǢÇÈǩǫǧǩÇåüèÿÇ≈Ç´Ç‹Ç∑ÅB
  • UTCheckForkPermissions - UTCheckPermission Ç…ë„ÇÌÇÈÉãÅ[É`ÉìÇ≈ÅAégÇ¢ï˚ǙǢÇ≠ÇÁÇ©ä»íPDžǻǡǃǢNjÇ∑ÅB

Ç‹ÇΩÅAFCB ÇÕåüçıÉäÉXÉgÇÃíÜÇ…íuÇ©ÇÍÅAÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇÃåüçıÇ™çÇë¨âªÇ≥ÇÍNjǵÇΩÅBéüÇÃÉãÅ[É`ÉìÇégópÇ∑ÇÈDZÇΔÇ≈ÅAäOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄLJDZÇÃÇÊǧǻåüçıÉäÉXÉgÇ…ÇÊÇÈèàóùÇÃçÇë¨âªÇÃâ∂åbÇãùéÛÇ≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB

  • UTAddFCBToSearchList
  • UTRemoveFCBFromSearchList
  • UTLocateFCBInSearchList

DZÇÃÇÊǧǻÉãÅ[É`ÉìÇÕÇ∑Ç◊ǃÅAç°å„ÅAÅuGuide to the File System ManagerÅvÇÃâ¸í˘î≈ÇÃíÜÇ≈ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍÇÈó\íËÇ≈Ç∑ÅB

íçà”:
DZÇÍÇÁÇà FCB ÉAÉNÉZÉbÉTÉãÅ[É`ÉìÇÕ Carbon ÇÃàÍïîÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBCarbon ÉRÅ[ÉhÇ…ÇÕÅAFCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇÕä‹Ç‹ÇÍǃǢNjÇπÇÒÅBè⁄ç◊DžǬǢǃÇÕÅAConcrete AdviceÅuåªé¿Ç…ë¶ÇµÇΩíÒàƒÅv ÇÃÉZÉNÉVÉáÉìÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

óvñÒ

FCB ÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇÕÉfÉxÉçÉbÉpÇ÷ÇÃê‡ñæÇñ⁄ìIÇΔǵǃDZÇÍÇ‹Ç≈âΩìxÇ©ÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍNjǵÇΩÇ™ÅADZÇÃÉtÉHÅ[É}ÉbÉgÇÃïœëJÇ™íÜífÇ∑ÇÈDZÇΔÇÕDZÇÍÇ‹Ç≈àÍìxÇΔǵǃdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅBMac OS 9.0 Ç≈LJDZÇÃÉeÅ[ÉuÉãÇÃÉtÉHÅ[É}ÉbÉgÇÕïœçXÇ≥ÇÍÅAéÂÇΔǵǃÉVÉXÉeÉÄè„ÇÃÉIÅ[ÉvÉìÉtÉ@ÉCÉãÇÃç≈ëÂêîÇ™ëùâ¡ÇµÇ‹ÇµÇΩÅBApple Ç≈ÇÕÅAä˘ë∂ÇÃÉhÉLÉÖÉÅÉìÉgâªÇ≥ÇÍǃǢÇÈÇ∑Ç◊ǃÇÃÉvÉçÉOÉâÉ~ÉìÉOÉCÉìÉ^ÉtÉFÅ[ÉXÇ™ê≥èÌÇ…ìÆçÏǵë±ÇØÇÈÇΔǢǧDZÇΔÇëOíÒDžDZÇÃïœçXÇé¿åªÇµÇ‹ÇµÇΩÅBÇ≥ÇÁÇ…ÅAä˘ë∂Çà FSM ÉAÉNÉZÉbÉT (System 7.5 Ç≈ì±ì¸Ç≥ÇÍÇΩ) Ç…ÇÊÇËÅAïKóvÇ»èÍçáÇÕ FCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇ™â¬î\Ç≈Ç∑ÅBÇΩÇæÇµ Apple Ç≈ÇÕÅAFCB Ç÷ÇÃíºê⁄ÉAÉNÉZÉXÇÇ≈Ç´ÇÈÇæÇØîÇØÅAÇfiǵÇÎ Carbon å›ä∑Çà File Manager ÉvÉçÉOÉâÉ~ÉìÉOÉCÉìÉ^ÉtÉFÅ[ÉXÇégópÇ∑ÇÈDZÇΔÇã≠Ç≠êÑèßǵǃǢNjÇ∑ÅB


éQçlï∂å£


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ


çXêVì˙: 1999 îN 10 åé 5 ì˙